// #ifndef VUE3
import Vue from 'vue'
import App from './App'
//引入vuex
import store from './store'
//把vuex定义成全局组件
Vue.prototype.$store = store

Vue.config.productionTip = false
import $ from 'common/fun.js'
Vue.prototype.$ = $
App.mpType = 'app'

const app = new Vue({
	...App,
	store
})
app.$mount()
import {
	$http
} from '@escook/request-miniprogram'
//从网络请求包中引入$http请求对象
uni.$http = $http
// $http.baseUrl = "http://192.168.1.111:8889";
// $http.baseUrl = "http://yym2417581902.qicp.net";
$http.baseUrl = "http://127.0.0.1:8889";
//因为在其他的页面或组件中也要使用，所以要将$http对象挂载到全局对象下，在uni-app中，uni是全局对象
//配置网络请求基础地址，因为uni.$http为$http的引用，所以可以直接修改$http对象下的属性
$http.beforeRequest = function(options) {
	let url=options.url
	
	//配置发起网络请求前的拦截功能
	if(url.includes('mycart')||url.includes('changeCartItemNum')){
		
	}else{
		uni.showLoading({
			title: '加载中...'
		})
	}

	options.header = {
		// 手动token [-无token-]
		token: store.state.m_user.token,
		
	}
}
$http.afterRequest = function(res) {
	//配置网络请求完毕后的拦截功能
	uni.hideLoading()
	if(res.data?.msg==='重新登录'){
		uni.$showMsg('请重新登录')
		store.commit('m_user/updateToken','')
		store.commit('m_user/updateUserInfo', null)
	}
}

// 封装请求失败提示信息
uni.$showMsg = function(title = '数据加载失败', duration = 1500, icon = 'none') {
	uni.showToast({
		title,
		duration,
		icon
	})
}

// #endif

// #ifdef VUE3
import {
	createSSRApp
} from 'vue'
import App from './App.vue'
export function createApp() {
	const app = createSSRApp(App)
	return {
		app
	}
}
// #endif
